{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tutorial on Causal Inference and its Connections to Machine Learning (Using DoWhy+EconML)\n",
    "This tutorial presents a walk-through on using DoWhy+EconML libraries for causal inference. Along the way, we'll highlight the connections to machine learning---how machine learning helps in building causal effect estimators, and how causal reasoning can be help build more robust machine learning models. \n",
    "\n",
    "Examples of data science questions that are fundamentally causal inference questions: \n",
    "* **A/B experiments**: If I change the algorithm, will it lead to a higher success rate?\n",
    "* **Policy decisions**: If we adopt this treatment/policy, will it lead to a healthier patient/more revenue/etc.?\n",
    "* **Policy evaluation**: Knowing what I know now, did my policy help or hurt?\n",
    "* **Credit attribution**: Are people buying because of the recommendation algorithm? Would they have bought anyway?\n",
    "\n",
    "In this tutorial, you will:\n",
    "* Learn how causal reasoning is necessary for decision-making, and the difference between a prediction and decision-making task.\n",
    "<br>\n",
    "\n",
    "* Get hands-on with estimating causal effects using the four steps of causal inference: **model, identify, estimate and refute**.\n",
    "<br>\n",
    "\n",
    "* See how DoWhy+EconML can help you estimate causal effects with **4 lines of code**, using the latest methods from statistics and machine learning to estimate the causal effect and evaluate its robustness to modeling assumptions.\n",
    "<br>\n",
    "\n",
    "* Work through **real-world case-studies** with Jupyter notebooks on applying causal reasoning in different scenarios including estimating impact of a customer loyalty program on future transactions, predicting which users will be positively impacted by an intervention (such as an ad), pricing products, and attributing which factors contribute most to an outcome.\n",
    "<br>\n",
    "\n",
    "* Learn about the connections between causal inference and the challenges of modern machine learning models."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "toc": true
   },
   "source": [
    "<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n",
    "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Why-causal-inference?\" data-toc-modified-id=\"Why-causal-inference?-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Why causal inference?</a></span><ul class=\"toc-item\"><li><span><a href=\"#Defining-a-causal-effect\" data-toc-modified-id=\"Defining-a-causal-effect-1.1\"><span class=\"toc-item-num\">1.1&nbsp;&nbsp;</span>Defining a causal effect</a></span></li><li><span><a href=\"#The-difference-between-prediction-and-causal-inference\" data-toc-modified-id=\"The-difference-between-prediction-and-causal-inference-1.2\"><span class=\"toc-item-num\">1.2&nbsp;&nbsp;</span>The difference between prediction and causal inference</a></span></li><li><span><a href=\"#Two-fundamental-challenges-for-causal-inference\" data-toc-modified-id=\"Two-fundamental-challenges-for-causal-inference-1.3\"><span class=\"toc-item-num\">1.3&nbsp;&nbsp;</span>Two fundamental challenges for causal inference</a></span></li></ul></li><li><span><a href=\"#The-four-steps-of-causal-inference\" data-toc-modified-id=\"The-four-steps-of-causal-inference-2\"><span class=\"toc-item-num\">2&nbsp;&nbsp;</span>The four steps of causal inference</a></span><ul class=\"toc-item\"><li><span><a href=\"#The-DoWhy+EconML-solution\" data-toc-modified-id=\"The-DoWhy+EconML-solution-2.1\"><span class=\"toc-item-num\">2.1&nbsp;&nbsp;</span>The DoWhy+EconML solution</a></span></li><li><span><a href=\"#A-mystery-dataset:-Can-you-find-out-if-if-there-is-a-causal-effect?\" data-toc-modified-id=\"A-mystery-dataset:-Can-you-find-out-if-if-there-is-a-causal-effect?-2.2\"><span class=\"toc-item-num\">2.2&nbsp;&nbsp;</span>A mystery dataset: Can you find out if if there is a causal effect?</a></span><ul class=\"toc-item\"><li><span><a href=\"#Model-assumptions-about-the-data-generating-process-using-a-causal-graph\" data-toc-modified-id=\"Model-assumptions-about-the-data-generating-process-using-a-causal-graph-2.2.1\"><span class=\"toc-item-num\">2.2.1&nbsp;&nbsp;</span>Model assumptions about the data-generating process using a causal graph</a></span></li><li><span><a href=\"#Identify-the-correct-estimand-for-the-target-quantity-based-on-the-causal-model\" data-toc-modified-id=\"Identify-the-correct-estimand-for-the-target-quantity-based-on-the-causal-model-2.2.2\"><span class=\"toc-item-num\">2.2.2&nbsp;&nbsp;</span>Identify the correct estimand for the target quantity based on the causal model</a></span></li><li><span><a href=\"#Estimate-the-target-estimand\" data-toc-modified-id=\"Estimate-the-target-estimand-2.2.3\"><span class=\"toc-item-num\">2.2.3&nbsp;&nbsp;</span>Estimate the target estimand</a></span></li><li><span><a href=\"#Check-robustness-of-the-estimate-using-refutation-tests\" data-toc-modified-id=\"Check-robustness-of-the-estimate-using-refutation-tests-2.2.4\"><span class=\"toc-item-num\">2.2.4&nbsp;&nbsp;</span>Check robustness of the estimate using refutation tests</a></span></li></ul></li></ul></li><li><span><a href=\"#Case-studies-using-DoWhy+EconML\" data-toc-modified-id=\"Case-studies-using-DoWhy+EconML-3\"><span class=\"toc-item-num\">3&nbsp;&nbsp;</span>Case-studies using DoWhy+EconML</a></span><ul class=\"toc-item\"><li><span><a href=\"#Estimating-the-impact-of-a-customer-loyalty-program\" data-toc-modified-id=\"Estimating-the-impact-of-a-customer-loyalty-program-3.1\"><span class=\"toc-item-num\">3.1&nbsp;&nbsp;</span>Estimating the impact of a customer loyalty program</a></span></li><li><span><a href=\"#Recommendation-A/B-testing-at-an-online-company\" data-toc-modified-id=\"Recommendation-A/B-testing-at-an-online-company-3.2\"><span class=\"toc-item-num\">3.2&nbsp;&nbsp;</span>Recommendation A/B testing at an online company</a></span></li><li><span><a href=\"#User-segmentation-for-targeting-interventions\" data-toc-modified-id=\"User-segmentation-for-targeting-interventions-3.3\"><span class=\"toc-item-num\">3.3&nbsp;&nbsp;</span>User segmentation for targeting interventions</a></span></li><li><span><a href=\"#Multi-investment-attribution-at-a-software-company\" data-toc-modified-id=\"Multi-investment-attribution-at-a-software-company-3.4\"><span class=\"toc-item-num\">3.4&nbsp;&nbsp;</span>Multi-investment attribution at a software company</a></span></li></ul></li><li><span><a href=\"#Connections-to-fundamental-machine-learning-challenges\" data-toc-modified-id=\"Connections-to-fundamental-machine-learning-challenges-4\"><span class=\"toc-item-num\">4&nbsp;&nbsp;</span>Connections to fundamental machine learning challenges</a></span></li><li><span><a href=\"#Further-resources\" data-toc-modified-id=\"Further-resources-5\"><span class=\"toc-item-num\">5&nbsp;&nbsp;</span>Further resources</a></span><ul class=\"toc-item\"><li><span><a href=\"#DoWhy+EconML-libraries\" data-toc-modified-id=\"DoWhy+EconML-libraries-5.1\"><span class=\"toc-item-num\">5.1&nbsp;&nbsp;</span>DoWhy+EconML libraries</a></span></li><li><span><a href=\"#Detailed-KDD-Tutorial-on-Causal-Inference\" data-toc-modified-id=\"Detailed-KDD-Tutorial-on-Causal-Inference-5.2\"><span class=\"toc-item-num\">5.2&nbsp;&nbsp;</span>Detailed KDD Tutorial on Causal Inference</a></span></li><li><span><a href=\"#Book-chapters-on-causality-and-machine-learning\" data-toc-modified-id=\"Book-chapters-on-causality-and-machine-learning-5.3\"><span class=\"toc-item-num\">5.3&nbsp;&nbsp;</span>Book chapters on causality and machine learning</a></span></li><li><span><a href=\"#Causality-and-Machine-Learning-group-at-Microsoft\" data-toc-modified-id=\"Causality-and-Machine-Learning-group-at-Microsoft-5.4\"><span class=\"toc-item-num\">5.4&nbsp;&nbsp;</span>Causality and Machine Learning group at Microsoft</a></span></li></ul></li></ul></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Why causal inference?\n",
    "Many key data science tasks are about decision-making. Data scientists are regularly called upon to support decision-makers at all levels, helping them make the best use of data in support of achieving desired outcomes. For example,  an executive making investment and resourcing decisions, a marketer determining discounting policies, a product team prioritizing which features to ship, or a doctor deciding which treatment to administer to a patient.  \n",
    "\n",
    "Each of these decision-makers is asking a what-if question.  Data-driven answers to such questions require understanding the *causes* of an event and how to take action to improve future outcomes.\n",
    "\n",
    "### Defining a causal effect \n",
    "Suppose that we want to find the causal effect of taking an action A on the outcome Y. To define the causal effect, consider two worlds: \n",
    "1. World 1 (Real World): Where the action A was taken and Y observed\n",
    "2. World 2 (*Counterfactual* World): Where the action A was not taken (but everything else is the same) \n",
    "\n",
    "Causal effect is the difference between Y values attained in the real world versus the counterfactual world. \n",
    "$${E}[Y_{real, A=1}] - E[Y_{counterfactual, A=0}]$$\n",
    "\n",
    "![Real and Counterfactual Worlds](images/real_vs_counterfactual_world.png)\n",
    "\n",
    "In other words, A causes Y iff changing A leads to a change in Y,\n",
    "*keeping everything else constant*. Changing A while keeping everything else constant is called an **intervention**, and represented by a special notation, $do(A)$. \n",
    "\n",
    "Formally, causal effect is the magnitude by which Y is changed by a unit *interventional* change in A:\n",
    "$$E[Y│do(A=1)]−E[Y|do(A=0)]$$\n",
    "\n",
    "To estimate the effect, the *gold standard* is to conduct a randomized experiment where a randomized subset of units is acted upon ($A=1$) and the other subset is not ($A=0$). These subsets approximate the disjoint real and counterfactual worlds and randomization ensures that there is not systematic difference between the two subsets (*\"keeping everything else constant\"*). \n",
    "\n",
    "However, it is not always feasible to a run a randomized experiment. To answer causal questions, we often need to rely on observational or logged data. Such observed data is biased by correlations and unobserved confounding and thus there are systematic differences in which units were acted upon and which units were not. For example, a new marketing campaign may be deployed during the holiday season, a new feature may only have been applied to high-activity users, or the older patients may have been more likely to receive the new drug, and so on. The goal of causal inference methods is to remove such correlations and confounding from the data and estimate the *true* effect of an action, as given by the equation above. \n",
    "\n",
    "\n",
    "### The difference between prediction and causal inference\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"images/supervised_ml_schematic.png\" alt=\"Drawing\" style=\"width: 400px;\"/> </td>\n",
    "<td> <img src=\"images/causalinference_schematic.png\" alt=\"Drawing\" style=\"width: 400px;\"/> </td>\n",
    "</tr></table>\n",
    "\n",
    "### Two fundamental challenges for causal inference\n",
    "We never observe the counterfactual world\n",
    "\n",
    "* Cannot directly calculate the causal effect\n",
    "* Must estimate the counterfactuals \n",
    "* Challenges in validation\n",
    "\n",
    "Multiple causal mechanisms can be fit to a single data distribution\n",
    "* Data alone is not enough for causal inference\n",
    "* Need domain knowledge and assumptions\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The four steps of causal inference\n",
    "\n",
    "Since there is no ground-truth test dataset available that an estimate can be compared to, causal inference requires a series of principled steps to achieve a good estimator. \n",
    "\n",
    "Let us illustrate the four steps through a sample dataset. This tutorial requires you to download two libraries: DoWhy and EconML. Both can be installed by the following command: `pip install dowhy econml`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Required libraries\n",
    "import dowhy\n",
    "from dowhy import CausalModel\n",
    "import dowhy.datasets\n",
    "\n",
    "# Avoiding unnecessary log messges and warnings\n",
    "import logging\n",
    "logging.getLogger(\"dowhy\").setLevel(logging.WARNING)\n",
    "import warnings\n",
    "from sklearn.exceptions import DataConversionWarning\n",
    "warnings.filterwarnings(action='ignore', category=DataConversionWarning)\n",
    "\n",
    "# Load some sample data\n",
    "data = dowhy.datasets.linear_dataset(\n",
    "    beta=10,\n",
    "    num_common_causes=5,\n",
    "    num_instruments=2,\n",
    "    num_samples=10000,\n",
    "    treatment_is_binary=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**I. Modeling**\n",
    "\n",
    "The first step is to encode our domain knowledge into a causal model, often represented as a graph. The final outcome of a causal inference analysis depends largely on the input assumptions, so this step is quite important. To estimate the causal effect, most common problems involve specifying two types of variables: \n",
    "\n",
    "1. **Confounders**: These are variables that cause both the action and the outcome. As a result, any observed correlation between the action and the outcome may simply be due to the confounder variables, and not due to any causal relationship from the action to the outcome. \n",
    "\n",
    "2. **Instrumental Variables**: These are special variables that cause the action, but do not directly affect the outcome. In addition, they are not affected by any variable that affects the outcome. Instrumental variables can help reduce bias, if used in the correct way. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_model:Causal Graph not provided. DoWhy will construct a graph based on data inputs.\n"
     ]
    }
   ],
   "source": [
    "# I. Create a causal model from the data and domain knowledge.\n",
    "model = CausalModel(\n",
    "    data=data[\"df\"],\n",
    "    treatment=data[\"treatment_name\"],\n",
    "    outcome=data[\"outcome_name\"],\n",
    "    common_causes=data[\"common_causes_names\"],\n",
    "    intrumental_variables=data[\"instrument_names\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To visualize the graph, we can write,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.view_model(layout=\"dot\")\n",
    "from IPython.display import Image, display\n",
    "display(Image(filename=\"causal_model.png\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In general, you can specify a causal graph that describes the mechanisms of the data-generating process for a given dataset. Each arrow in the graph denotes a causal mechanism: \"A->B\" implies that the variable A causes variable B.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# I. Create a causal model from the data and given graph.\n",
    "model = CausalModel(\n",
    "    data=data[\"df\"],\n",
    "    treatment=data[\"treatment_name\"][0],\n",
    "    outcome=data[\"outcome_name\"][0],\n",
    "    graph=data[\"gml_graph\"])\n",
    "model.view_model(layout=\"dot\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**II. Identification**\n",
    "\n",
    "Both ways of providing domain knowledge (either through named variable sets of confounders and instrumental variables, or through a causal graph) correspond to an underlying causal graph. Given a causal graph and a target quantity (e.g., effect of A on B), the process of identifcation is to check whether the target quantity can be estimated given the observed variables. Importantly, identification only considers the names of variables that are available in the observed data; it does not need access to the data itself. Related to the two kinds of variables above, there are two main identification methods for causal inference. \n",
    "\n",
    "1. **Backdoor criterion** (or more generally, adjustment sets): If all common causes of the action A and the outcome Y are observed, then the backdoor criterion implies that the causal effect can be identified by conditioning on all the common causes. This is a simplified definition (refer to Chapter 3 of the CausalML book for a formal definition).\n",
    "$$ E[Y│do(A=a)] = E_W E[Y|A=a, W=w]$$\n",
    "       \n",
    "where $W$ refers to the set of common causes (confounders) of $A$ and $Y$. \n",
    "\n",
    "2. **Instrumental variable (IV) identification**: If there is an instrumental variable available, then we can estimate effect even when any (or none) of the common causes of action and outcome are unobserved. The IV identification utilizes the fact that the instrument only affects the action directly, so the effect of the instrument on the outcome can be broken up into two sequential parts: the effect of the instrument on the action and the effect of the action on the treatment. It then relies on estimating the effect of the instrument on the action and the outcome to estimate the effect of the action on the outcome. For a binary instrument, the effect estimate is given by,\n",
    "    \n",
    " $$ E[Y│do(A=1)] -E[Y│do(A=0)]  =\\frac{E[Y│Z=1]- E[Y│Z=0]}{E[A│Z=1]- E[A│Z=0]} $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_identifier:If this is observed data (not from a randomized experiment), there might always be missing confounders. Causal effect cannot be identified perfectly.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARN: Do you want to continue by ignoring any unobserved confounders? (use proceed_when_unidentifiable=True to disable this prompt) [y/n] y\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor1 (Default)\n",
      "Estimand expression:\n",
      "  d                                 \n",
      "─────(Expectation(y|W4,W1,W3,W0,W2))\n",
      "d[v₀]                               \n",
      "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W4,W1,W3,W0,W2,U) = P(y|v0,W4,W1,W3,W0,W2)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "Estimand expression:\n",
      "Expectation(Derivative(y, [Z0, Z1])*Derivative([v0], [Z0, Z1])**(-1))\n",
      "Estimand assumption 1, As-if-random: If U→→y then ¬(U →→{Z0,Z1})\n",
      "Estimand assumption 2, Exclusion: If we remove {Z0,Z1}→{v0}, then ¬({Z0,Z1}→y)\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# II. Identify causal effect and return target estimands\n",
    "identified_estimand = model.identify_effect()\n",
    "print(identified_estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**III. Estimation**\n",
    "\n",
    "As the name suggests, the estimation step involves building a statistical estimator that can compute the target estimand identified in the previous step. Many estimators have been proposed for causal inference. DoWhy implements a few of the standard estimators while EconML implements a powerful set of estimators that use machine learning.   \n",
    "\n",
    "We show an example of using Propensity Score Stratification using DoWhy, and a machine learning-based method called Double-ML using EconML."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: y~v0+W4+W1+W3+W0+W2\n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 10.07942871979479\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# III. Estimate the target estimand using a statistical method.\n",
    "propensity_strat_estimate = model.estimate_effect(identified_estimand,\n",
    "                                 method_name=\"backdoor.dowhy.propensity_score_stratification\")\n",
    "\n",
    "print(propensity_strat_estimate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/amit/py-envs/env3.8/lib/python3.8/site-packages/sklearn/utils/deprecation.py:143: FutureWarning: The sklearn.ensemble.forest module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.ensemble. Anything that cannot be imported from sklearn.ensemble is now part of the private API.\n",
      "  warnings.warn(message, FutureWarning)\n",
      "/home/amit/py-envs/env3.8/lib/python3.8/site-packages/sklearn/utils/deprecation.py:143: FutureWarning: The sklearn.ensemble.base module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.ensemble. Anything that cannot be imported from sklearn.ensemble is now part of the private API.\n",
      "  warnings.warn(message, FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: y~v0+W4+W1+W3+W0+W2 | \n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 9.880472520481266\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import econml\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LassoCV\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "dml_estimate = model.estimate_effect(identified_estimand, \n",
    "                                    method_name=\"backdoor.econml.dml.DMLCateEstimator\",\n",
    "                                    method_params={\n",
    "                                        'init_params': {'model_y':GradientBoostingRegressor(),\n",
    "                                                        'model_t': GradientBoostingRegressor(),\n",
    "                                                        'model_final':LassoCV(fit_intercept=False), },\n",
    "                                        'fit_params': {}\n",
    "                                     })\n",
    "print(dml_estimate)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**IV. Refutation**\n",
    "\n",
    "Finally, checking robustness of the estimate is probably the most important step of a causal analysis. We obtained an estimate using Steps 1-3, but each step may have made certain assumptions that may not be true. Absent of a proper validation \"test\" set, this step relies on *refutation* tests that seek to refute the correctness of an obtained estimate using properties of a good estimator. For example, a refutation test (`placebo_treatment_refuter`) checks whether the estimator returns an estimate value of 0 when the action variable is replaced by a random variable, independent of all other variables.   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Use a Placebo Treatment\n",
      "Estimated effect:10.07942871979479\n",
      "New effect:0.0025304754486525395\n",
      "p value:0.48\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# IV. Refute the obtained estimate using multiple robustness checks.\n",
    "refute_results = model.refute_estimate(identified_estimand, propensity_strat_estimate,\n",
    "                                       method_name=\"placebo_treatment_refuter\")\n",
    "print(refute_results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The DoWhy+EconML solution\n",
    "We will use the DoWhy+EconML libraries for causal inference. DoWhy provides a general API for the four steps and EconML provides advanced estimators for the Estimation step.  \n",
    "\n",
    "DoWhy allows you to visualize, formalize, and test the assumptions they are making, so that you can better understand the analysis and avoid reaching incorrect conclusions. It does so by focusing on assumptions explicitly and introducing automated checks on validity of assumptions to the extent possible. As you will see, the power of DoWhy is that it provides a formal causal framework to encode domain knowledge and it can run automated robustness checks to validate the causal estimate from any estimator method.\n",
    "\n",
    "Additionally, as data becomes high-dimensional, we need specialized methods that can handle known confounding. Here we use EconML that implements many of the state-of-the-art causal estimation approaches.  This package has a common API for all the techniques, and each technique is implemented as a sequence of machine learning tasks allowing for the use of any existing machine learning software to solve these subtasks, allowing you to plug-in the ML models that you are already familiar with rather than learning a new toolkit.  The power of EconML is that you can now implement the state-of-the-art in causal inference just as easily as you can run a linear regression or a random forest.\n",
    "\n",
    "Together, DoWhy+EconML make answering what if questions a whole lot easier by providing a state-of-the-art, end-to-end framework for causal inference, including the latest causal estimation and automated robustness procedures. \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A mystery dataset: Can you find out if if there is a causal effect?\n",
    "To walk-through the four steps, let us consider the **Mystery Dataset** problem. Suppose you are given some data with treatment and outcome. Can you determine whether the treatment causes the outcome, or the correlation is purely due to another common cause?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import dowhy.datasets, dowhy.plotter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we create a dataset where the true causal effect is decided by random variable. It can be either 0 or 1. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Treatment    Outcome        w0         s        w1\n",
      "0   6.123326  12.206652 -0.048005  5.012038  0.387936\n",
      "1  11.602212  23.370264 -2.344564  8.286637  0.157263\n",
      "2   8.435096  17.044952  1.544191  4.567102  0.389267\n",
      "3   9.335240  17.608799 -1.789557  8.486756 -0.779766\n",
      "4  21.459765  42.175010 -3.957357  7.206502 -2.076722\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvYAAAGTCAYAAABDMFZUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACDCElEQVR4nO3deXxU1fk/8M/JHtYEAiKRXZaKgSAoonWvVesWQaBFrH61brSKtS5BsC5xq/tPa9VqxQVsESsRBLW4ohi04AQoyo6gYWQPBDIh2/n9cWdgMpl75547997ZPu/Xa15J5m4nk5uZ5577nOcIKSWIiIiIiCixpcW6AUREREREFD0G9kRERERESYCBPRERERFREmBgT0RERESUBBjYExERERElAQb2RERERERJICPWDYhGQUGB7N27d6ybQURE5Jply5btlFJ2iXU7iCj+JHRg37t3byxdujTWzSAiInKNEGJzrNtARPGJqThEREREREmAgT0RERERURJgYE9ERERElAQY2BMRERERJQEG9kRERERESYCBPRERERFREmBgT0RERESUBBjYExERERElAQb2RERERERJgIE9ERGRU7xe4LTTgJ9+inVLiCgFMLAnIiJySlkZ8MUX2lciIocJKWWs22DZiBEj5NKlS2PdDCIiotYqK4HjjgOkBHJygE2bgG7dot6tEGKZlHJE9A20ZtmyZQLAGRkZGWOFEKdIKdvFqi1EqUAIsV9K+XljY+NsAJ8MHz5cN3jPcLFdREREqWPiRC2oB4D6eq3X/tlnY9umKC1btkykpaXdkZub+7suXbrIDh067M/IyNgphIh104iSkpQSjY2N6fv27fvFjh07zvb5fC8tW7bsL3rBPVNxiIiI7FZZCaxadfjn5mbg5ZeTIdf+jNzc3N8dffTR+zp37rw3MzOziUE9kXOEEMjMzGzq3Lnz3qOPPnpfbm7u7wCcobe+5cBeCHGOEOINIcQmIYRPCLFLCLFCCPF3IcS5Btu1F0L82b9ujRCiWgjxtRDiZiFEptX22GLhQiAjA/j445g2g4iIEtzEia2fC/TaJ7CMjIyxXbp0kRkZGc2xbgtRqsnIyGju0qULMjIyxuquo7pTIURbAK8BGB2yKAdAJwBFAAYAeD/Mtn0AfAigb8ii4/2PiUKIs6WUe1TbZYuxY4GmJmD0aKC6OiZNICKiBOf1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QG38CRMm6L7Oa9eu1Z3QKZ707t37IAD88MMP2bFui9MS4krLcUapOERERNGqr2eVNXLNiBEjfAUFBQ0AMGvWLOUa/3V1dYdSa5qamsKm2XzyySdtjALlzMzMQ7kojY2ujyFt4ZxzztkHANu2bcv88MMP20Za3wmB9CVAG5TsFAb2gFZ3mIiIKFpGJS15d5hckpaWhuuuu24bALz55psFs2bNMpxEYffu3WmbN28+NHi2f//+h3r458yZ02rbmpqatBtvvLHVpFbBunTpciiaD953LFxyySX7jj766DoAmDRpUq9t27YZ5twvX77c9p79goKCJiG0a6SqqirHXg8G9gGddcq3cqZAIiIyq9Zg0vQvv3SvHZTypk2btn3YsGEHmpqacNlllx192WWX9Xz//ffbVVVVZezYsSN9xYoV2dOnT88fN25cr169eg35+OOPD1W/6dWrV8Nxxx23HwCeeeaZI0tLS7v973//y966dWvGrFmzOo4cOXLgd99916Z37951esc/4YQTagMTPN15553d169fn3nw4EHR0NDgeg9+eno6Xn755U3Z2dly3bp1uUOHDh18//33d/3mm29yduzYkf7DDz9kfPbZZ20eeuihLieeeOKAk0466Ri729C+ffvmPn361AHACy+80PXrr7/O3b9/v2hoaEBDg30FIZljH9CuHbBrV+vnm5uBFSuAIUPcbxMRESUWow9o3h0mF+Xk5Mj//Oc/68aOHdvn008/7fjGG290eeONN7rorZ+VldXidtPzzz+/+ayzzhpUU1OT/pe//KXwL3/5y6EJwIQQ+POf//zjypUrc7///vuwNex79uzZeN555+2ZP39+/ptvvlnw5ptvFgSWHX/88fu//vprVwexnnLKKbXl5eVrL7/88r7btm3LvOuuu3rcddddYdft0KGDI7ky11133fY77rij54oVK9qOHDmyxcWDlHKZHcdgd3SAUYmycePcawcRESUn5tiTywoKCpo++eST9W+//fa6iy66aHdhYWF9Tk5Oc0ZGhiwoKGg4/vjj9990003exYsXf3vZZZe1mPjp+OOPr6uoqPiupKRkV0FBQUNGRobs0qVLwy9+8YvquXPnrr3nnnu2RTr+m2++uemWW27ZOmDAAJ9ReU63nHvuufs3bNjwv/vuu++HE088saZTp06N6enpMicnp7lXr14HzznnnD2PPPLI5rVr16504vi33377jr/+9a+bhg8fvr99+/ZNaQ5khYhY1dm0w4gRI+TSpUvt2ZkwKMGang7EeOAHERHFOa9Xv3QyAEyaBDwbOuG6OiHEMinliKh3ZMHy5cu/Hzp06M5YHJuINMuXLy8YOnRo73DL2GMfMHas/rJBg9xrBxERJaZIg2OZY09EDmNgH/DOO/rL+vZ1rx1ERJSYFi3SX5aVxRx7InIcA/sAoxlm5893rx1ERJSYfvYz/WV9+rjXDiJKWQzsA7INSpYa1SUmIiIC9GedBYD1691rBxGlLAb2AVddpb+so+G8DkRERIBRMYqiIvfaQUQpi4F9QEWF/rK9e/WXERERAUDv3vrL3nvPtWYQUepiYB/g8ein4xil6RAREQHG6TaRKuYQEdmAgX0wvVx65tgTEVEkmZn6yz77zL12EFHKYmAfLCfsrMhERETROf74WLeAiFIAA/tgNTXhn29o4FTgRERkbPx4/WVGFXOIiGzCwD5YmsHLwfxIIiIyMneu/rIePdxrBxGlLAb2wYzKWnIqcCIiMuLzhX8+LY2zzhKRKxjYB9Prsc/L45syEREZa2gI/3xzM9M5icgVDOyDdesW/vkDB9xtBxERJRav17iCGtM5icgFDOyD6U0u0tAArFjhalOIiCiBRArcmc5JRC5gYB/MaGbA0aPdawcRESUWo9nLAaZzEpErGNgHk1J/2caN7rWDiIgSCwN3IooDDOyDffON/rKsLPfaQURERESkKCPWDYgrEyfqL/vlL91rBxERJRavN9YtoCSxePHi3FdeeaXzokWLOmzfvj3zwIED6fn5+Y19+/atO/fcc6snTZq0q0uXLk2xbifFJ/bYB9uwQX/ZvHksV0ZEROGVluovKy52rRmUuGpqatLGjBnT+5RTTjnmpZdeOmLt2rW51dXVGQ0NDWL79u2ZS5YsaX/PPff0GDBgwLF//etfOzvVjqeffrqzEGK4EGK4U8cg5zCwD6Y3uUgAy5UREVE48+aFfz4ri/n3FNGuXbvSTznllAFvv/12ZyklhgwZcuC5557btGrVqpVer7dyyZIl35aWllZ17Nixqbq6OuPGG2/sPXXqVJ0a3ZTKmIqjguXKiIgonMbG8M/X12t3e/XmSSECcOWVV/Zcvnx5WwC4+uqrt73wwgs/pqenH1rerVs338iRI3033HDDzrPOOmvg+vXrcx566KHC4447rnbMmDH7YtZwijvssVdhVA6TiIhSl9FEhkZpOpTy/v3vf3d49913OwHAGWecsfell15qEdQH69mzZ+N77723tk2bNs1SStx44429GvRmPKaUxMBeBVNxiIgoHKNyyfPnu9cOSjhPPfXUEQAghMAzzzzzQ6T1jz766IbrrrtuGwB4vd6s6dOn5weWrVmzJiuQH//uu++219vHmDFjegshhp9wwgkDQ7edPHly78BzgX0FHsHrB5szZ06Hiy66qE9hYWFRTk7OcR07diweMGDAMWPGjOn91ltvddBrxyuvvJJ35plnHl1QUDA0KyvruE6dOg39+c9/3v9vf/tbp2admZxDf8fa2lpxxx13dBswYMAxubm5wwoKCoaee+65fZctW5YTvN1LL72Uf8IJJwzMz88fmpubO6y4uHjQq6++mqfXtoB9+/al3X333UcMHz58YH5+/tCsrKzjunbtOuRXv/pV3/fff79dpO3dxlQcFUzFISKicK6/HnjuufDLjjrK3bZQwtizZ09aRUVFBwA4/vjjawYPHnzQzHY33HDDzieffPJIAHjnnXfyr7322j1OtlPPvn370saOHdvnP//5T17w8wcPHkzft29f7rp163L94waWBS+vra0VF198cd8PP/ywxXZ79uzJWLx4cYfFixd3mDFjRsH8+fPX5+fnh4/wAVRXV6ePGDFi0Hfffdcm8FxdXV3aBx98kL948eIO77///ppRo0b5JkyY0GvWrFkFwdsuX7687ZVXXtlvx44dm2+99dad4fb/5Zdf5o4ePbr/tm3bMoOf37FjR+Z7772X/9577+VPmjTpp2effbYq0mvlFvbYh7rhBiAtzMvSrx8HQBERUXgffBD++b59+dnhlM2bM3H88QOxZUvCdlJ++umn7ZqatMqVJ5988n6z2/Xv37/+yCOPrAeApUuX2tJr3L9///rq6mrPI488sjnwXHV1tSf48fHHH68NLGtubsZFF13UNxDU//KXv6x+55131m7ZsmV5VVXV8g8//HD1rbfeurV79+71oce68sorewaC+gsuuGD3Z5999p3X66388ssvvx0/fvxOAKioqGg/duzYPkZtvuOOO3r8+OOP2Q8++OCWtWvXrqyqqlr+3HPPbWrXrl3T/v370//whz/0euCBB7rOnj274Lrrrtu2dOnSVT/99FPlggUL1vTr168OAP785z/38Hq9rc6htWvXZp133nkDt23bltm3b9+6Z599dtOaNWtWbt++vfLzzz//bty4cTsB4G9/+1u3Rx99tCB0+1hJ2H8GxyxaBIS7/bNhAwdAERFReHp17Fkm2TlTpx6JZcvaYerU7nj99S2xbo4VGzZsODT75c9+9rMIpflaOvroo+u8Xm/W9u3bMxsaGpCZmRl5IwNpaWno2LFjc3Z29qG8so4dO+r2lj///POdPvvss44AcPPNN3uffPLJrcHLu3fv3njWWWcdePDBB1v8c3z++edtZs+eXQAAv/71r3f+85//PHQh0a1bN9+oUaM25+fnNz7//PPdPvroo7y33nqrw6WXXhp2gPD27dszP/zww9WnnXZabeC566+/fnddXZ344x//2LuysrLtypUr29x3330/TJ06dXtgnfPOO2//22+/vb64uPhYn8+X9vrrr+fffvvtO4L3fd111/Xct29felFR0YHFixevbd++/aHXokuXLrU///nPN3fr1q3h6aefPvLBBx8svOGGG3a1a9fOICfPHeyxD3XqqfrLJk92rx1ERJQ49Mol19aGf56is3lzJt56qwBSArNnFyRqr/2ePXsOtbtTp05Kk0517NjxUCmm7du3u/77P//8810BoH///r7HHntsq956oRccf//73wsAICcnp/mvf/3rj+G2eeKJJ7Z26tSpEQD+8Y9/6PaGX3jhhbuDg/qAK664Yo8QAgDQrVu3hilTpmwPXWfIkCEHjznmmFoA+O9//9s2eNmqVauyAxctzzzzzJbgoD7YAw884M3NzW2urq7OmDNnTke9drqJgX2oigr9Ze+84147iIgoMXDWWfdNnXrkobvrzc3A1KndY9ug2NIbaOqU3bt3p61ataotAFx66aW79ar4hPP111+3A4CTTjppX+fOncNezOTm5spf/OIX1QDw3//+V3cQ8Nlnnx22Jz8/P785Pz+/EQB+/vOf70sLl2INoFevXgeB1hdG77//fnspJTp27NhUXFxct3fv3rRwj6amJtG3b986fzvbhDuG2xLyCtdRHg+Qnh4+HYeIiCiUUTnLrCz9ZWRNoLe+oUHrkm1oEJg9uwAPPLAVPXvqTCgQnwLBJwDs3r3bfHQMYO/evYdiuK5duyr19kdr3bp12YGLieLiYqXbUlu3bs0CgEGDBtUZrXfMMcf4AGDXrl0ZdXV1Iicnp1WaS/fu3XVrfebk5DQDwBFHHBFxnbq6uhaR/5o1a3IAYO/evel5eXnDjNoZsHPnzuhyoWzCHvtQXq9+UH/xxe62hYiI4p/R3dzcXPfakSqCe+sDErTXvm/fvocGlq5evTrHaN1QGzZsyAGArl27NgTnxbth7969h+JHozz8cHw+XzoAtGvXzvBiJDj9pbq6Omy8auZOgZl1pJQi+Od9+/YpXWQBwMGDB0XktZzHHvtQRj0vc+a41w4iIkoMdQYdj3v3uteOVLF0adtDvfUBDQ0CIXnSieD000/fn56ejqamJixevLg9AFN5XevXr88M9HyPGDHiUDWdQF55JI2NjVEFocHBfHCQb0Zubm7T/v370/fv328YPO/fv//QfvPy8lxNo2jbtm0zABx55JH1W7duXenmsaPFHvtQRhOJcHY3IiIKZTQ51eDB7rUjVaxe/R2kXNbqsXr1d7FumqpOnTo1jxw5ch+g5ZKvXr3aVO7WCy+8cGhA6cUXX3yohn1ubu6hALi2tlY3eN++fXtUaSP9+/c/GOgJX758uVJueWFhYT1wON1Fz7fffpsLAAUFBQ3h0nCc1Ldv34OAVq9+//79cdETbxYD+1A9esS6BURElEiys/WXnXaae+2ghDR58uRtgDYA9g9/+EPEIGTTpk2Zzz33XDdA61H+v//7v0OBfdeuXZsyMjIkAKxduzZs4Lx79+605cuX697dyMzMPBRENzaGH7LQqVOn5mOPPfYAAMyePVt3lthwTjjhhP0A8OWXX3bYvXt32DjU5/OJQJ374DsSbjnvvPP2AdqdjZkzZ+ZHWj+eMLAP5fEA7XUGYEdZI5aIiJJQTY3+ss8+c68dlJDGjRu377zzztsDAB999FHeddddd1Rg0qpQVVVVGeeee27/AwcOpAkh8Mwzz2wOLieZnZ0tBw0a5AP0A+4//elPhT6fTzf+69Kly6FofvPmzbqBz3XXXbcdANatW5d7xx13HKm3XkNItsO11167EwB8Pl/aTTfdFHZa5ltvvbX7rl27MgDg6quvDjsrrJOOO+64ulNPPXUvANx1111HrVmzxvBOypo1a7J8Pl9c9OwzsA9H7026oYGTjRARkXnssScTXnvttc3HHntsLQD8/e9/P2L48OGDXnjhhU6rV6/O+umnn9K//vrr3DvvvLPbscceO3jt2rW5ADBlypSqMWPGtCr3OGHChJ0AsGLFirajR4/u88033+Ts2LEjfdGiRW1KSkr6vPrqq10D6TDhnHDCCbWB8pB33nln9/Xr12cePHhQNDQ0tOjBv+6663afdtppewHgscce6/6rX/2q77x589pXVVVleL3ejM8++6zNlClTuvXp06coeP8///nPa8eOHbsTAGbOnNnl4osv7vP555+32bZtW/pXX32VO2HChF5/+9vfugHAmWeeWa03OZXTXnzxxS15eXmNO3bsyBw5cuQxd9xxR7eKiorcbdu2pW/dujWjoqIi98knnyw488wzjx48eHBRdXW18oBbJwhplBsY50aMGCGXLl1q/46zs4F6nXN+0iTg2WftPyYRESUmowGLxcXanWBbDyeWSSlH2LpTk5YvX/790KFDXe9BTQV79+5Nu+KKK3rNnTu3k1Fs1rFjx6aysrIfbrzxxl3hljc0NOCkk04auHTp0nahy4QQmDp16o/ffvtt7ttvv935+OOP3//111+vCV3vggsu6Dt//vxWKSih6+/bty/tkksu6fPxxx/nGf1uUsplwT/X1taKiy++uG8g3SacUaNG1cyfP399fn5+i9sOa9asyRo0aFARAMybN2/tBRdcELY3trCwsGjr1q1Zf/zjH71PPPFE2Am0xowZ09vodVi2bFnOmDFjjt68ebNBvp1Wecfr9VZ26dLFlbKjy5cvLxg6dGjvcMvYYx9OW4OB9V9+6V47iIgo/vXtq7/svffcawcltI4dOzaXl5dvWrRo0XdXXXXV9v79+/s6dOjQlJmZKbt06dIwcuTImrvvvvvHdevWrdQL6gFtptdPPvlk7a233rq1b9++dVlZWTIvL6/xlFNO2Tdnzpy1ZWVl2yK15c0339x0yy23bB0wYIAvUOs9nA4dOjR/9NFHG954443155xzzp6uXbs2ZGZmyry8vMYBAwb4Jk6cuOP9999vFTC3adNGLly4cMP06dM3nH766Xs7d+7cmJGRIfPz8xtPOumkfc8+++ymL774Ym1oUO+24cOH161evXrVk08++f3pp5++t0uXLg2ZmZkyOztbdu/evf6MM87Ye++99/6wbt26FW4F9ZGwxz4co94Xrxfo1s3+YxIRUWIy+sxw4C4ve+yJUht77FX94hf6y8rK3GsHERElNt7lJSIXMbAP58MP9Zfx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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rvar = 1 if np.random.uniform() > 0.2 else 0\n",
    "is_linear = False # A non-linear dataset. Change to True to see results for a linear dataset.\n",
    "data_dict = dowhy.datasets.xy_dataset(10000, effect=rvar, \n",
    "                                      num_common_causes=2, \n",
    "                                      is_linear=is_linear, \n",
    "                                      sd_error=0.2) \n",
    "df = data_dict['df']                                                                                 \n",
    "print(df.head())    \n",
    "dowhy.plotter.plot_treatment_outcome(df[data_dict[\"treatment_name\"]], df[data_dict[\"outcome_name\"]],\n",
    "                             df[data_dict[\"time_val\"]]) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "#### Model assumptions about the data-generating process using a causal graph "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_model:Causal Graph not provided. DoWhy will construct a graph based on data inputs.\n"
     ]
    }
   ],
   "source": [
    "model= CausalModel(                                                                                                                      \n",
    "        data=df,                                                                                                                         \n",
    "        treatment=data_dict[\"treatment_name\"],                                                                                           \n",
    "        outcome=data_dict[\"outcome_name\"],                                                                                               \n",
    "        common_causes=data_dict[\"common_causes_names\"],                                                                                  \n",
    "        instruments=data_dict[\"instrument_names\"])                                                                                       \n",
    "model.view_model(layout=\"dot\")  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Identify the correct estimand for the target quantity based on the causal model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_identifier:If this is observed data (not from a randomized experiment), there might always be missing confounders. Causal effect cannot be identified perfectly.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARN: Do you want to continue by ignoring any unobserved confounders? (use proceed_when_unidentifiable=True to disable this prompt) [y/n] y\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor1 (Default)\n",
      "Estimand expression:\n",
      "     d                                  \n",
      "────────────(Expectation(Outcome|w1,w0))\n",
      "d[Treatment]                            \n",
      "Estimand assumption 1, Unconfoundedness: If U→{Treatment} and U→Outcome then P(Outcome|Treatment,w1,w0,U) = P(Outcome|Treatment,w1,w0)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "No such variable found!\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "identified_estimand = model.identify_effect()\n",
    "print(identified_estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since this is observed data, the warning asks you if there are any unobserved confounders that are missing in this dataset. If there are, then ignoring them will lead to an incorrect estimate. \n",
    "If you want to disable the warning, you can use `proceed_when_unidentifiable=True` as an additional parameter to `identify_effect`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Estimate the target estimand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: Outcome~Treatment+w1+w0\n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 1.9976327875094593\n",
      "\n",
      "Causal Estimate is 1.9976327875094593\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "estimate = model.estimate_effect(identified_estimand,\n",
    "        method_name=\"backdoor.linear_regression\")\n",
    "print(estimate)\n",
    "print(\"Causal Estimate is \" + str(estimate.value))\n",
    "\n",
    "# Plot Slope of line between action and outcome = causal effect                                                                                                 \n",
    "dowhy.plotter.plot_causal_effect(estimate, df[data_dict[\"treatment_name\"]], df[data_dict[\"outcome_name\"]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, for a non-linear data-generating process, the linear regression model is unable to distinguish the causal effect from the observed correlation. \n",
    "\n",
    "If the DGP was linear, however, then simple linear regression would have worked. To see that, try setting `is_linear=True` in cell **10** above.\n",
    "\n",
    "To model non-linear data (and data with high-dimensional confounders), we need more advanced methods. Below is an example using the double machine learning estimator from EconML. This estimator uses machine learning-based methods like gradient boosting trees to learn the relationship between the outcome and confounders, and the treatment and confounders, and then finally compares the residual variation between the outcome and treatment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: Outcome~Treatment+w1+w0 | \n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 1.0737290021085444\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LassoCV\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "dml_estimate = model.estimate_effect(identified_estimand, method_name=\"backdoor.econml.dml.DMLCateEstimator\",\n",
    "                                     control_value = 0,\n",
    "                                     treatment_value = 1,\n",
    "                                 confidence_intervals=False,\n",
    "                                method_params={\"init_params\":{'model_y':GradientBoostingRegressor(),\n",
    "                                                              'model_t': GradientBoostingRegressor(),\n",
    "                                                              \"model_final\":LassoCV(fit_intercept=False), \n",
    "                                                              'featurizer':PolynomialFeatures(degree=2, include_bias=True)},\n",
    "                                               \"fit_params\":{}})\n",
    "print(dml_estimate)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, the DML method obtains a better estimate, that is closer to the true causal effect of 1. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check robustness of the estimate using refutation tests"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Add a Random Common Cause\n",
      "Estimated effect:1.0737290021085444\n",
      "New effect:1.057555912932793\n",
      "\n"
     ]
    }
   ],
   "source": [
    "res_random=model.refute_estimate(identified_estimand, dml_estimate, method_name=\"random_common_cause\")\n",
    "print(res_random)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_refuters.placebo_treatment_refuter:We assume a Normal Distribution as the sample has less than 100 examples.\n",
      "                 Note: The underlying distribution may not be Normal. We assume that it approaches normal with the increase in sample size.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Use a Placebo Treatment\n",
      "Estimated effect:1.0737290021085444\n",
      "New effect:0.00016734550968132794\n",
      "p value:0.3879482859381036\n",
      "\n"
     ]
    }
   ],
   "source": [
    "res_placebo=model.refute_estimate(identified_estimand, dml_estimate,\n",
    "        method_name=\"placebo_treatment_refuter\", placebo_type=\"permute\",\n",
    "        num_simulations=20)\n",
    "print(res_placebo)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Case-studies using DoWhy+EconML\n",
    "In practice, as the data becomes high-dimensional, simple estimators will not estimate the correct causal effect. More advanced supervised machine learning models also do not work and often are worse than simple regression, because they include additional regularization techniques that help in minimizing predictive error, but can have unwanted effects on estimating the causal effect. Therefore, we need methods targeted to estimate the causal effect. At the same time, we also need suitable refutation methods that can check the robustness of the estimate. \n",
    "\n",
    "\n",
    "Here is an example of using DoWhy+EconML for a high-dimensional dataset.\n",
    "\n",
    "\n",
    "More details are in this [notebook](https://github.com/microsoft/dowhy/blob/master/docs/source/example_notebooks/dowhy-conditional-treatment-effects.ipynb). \n",
    "\n",
    "\n",
    "Below we provide links to case studies that illustrate the use of DoWhy+EconML.\n",
    "\n",
    "### Estimating the impact of a customer loyalty program\n",
    "[Link to full notebook](https://github.com/microsoft/dowhy/blob/master/docs/source/example_notebooks/dowhy_example_effect_of_memberrewards_program.ipynb)\n",
    "\n",
    "\n",
    "###\tRecommendation A/B testing at an online company\n",
    "[Link to full notebook](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Recommendation%20AB%20Testing%20at%20An%20Online%20Travel%20Company%20-%20EconML%20%2B%20DoWhy.ipynb)\n",
    "\n",
    "###\tUser segmentation for targeting interventions\n",
    "[Link to full notebook](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Customer%20Segmentation%20at%20An%20Online%20Media%20Company%20-%20EconML%20%2B%20DoWhy.ipynb)\n",
    "\n",
    "### Multi-investment attribution at a software company\n",
    "[Link to full notebook](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Multi-investment%20Attribution%20at%20A%20Software%20Company%20-%20EconML%20%2B%20DoWhy.ipynb)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Connections to fundamental machine learning challenges\n",
    "Causality is connected to many fundamental challenges in building machine learning models, including out-of-distribution generalization, fairness, explanability and privacy. \n",
    "\n",
    "![ML challenges](images/causality_ml_example_challenges.png)\n",
    "\n",
    "How causality can help in solving many of the challenges above is an active area of research. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Further resources\n",
    "\n",
    "### DoWhy+EconML libraries\n",
    "DoWhy code: https://github.com/microsoft/dowhy\n",
    "\n",
    "DoWhy notebooks: https://github.com/microsoft/dowhy/tree/master/docs/source/example_notebooks\n",
    "\n",
    "EconML code: https://github.com/microsoft/econml\n",
    "\n",
    "EconML notebooks: https://github.com/microsoft/EconML/tree/master/notebooks\n",
    "\n",
    "### Detailed KDD Tutorial on Causal Inference\n",
    "https://causalinference.gitlab.io/kdd-tutorial/\n",
    "\n",
    "### Book chapters on causality and machine learning\n",
    "http://causalinference.gitlab.io/\n",
    "\n",
    "### Causality and Machine Learning group at Microsoft\n",
    "https://www.microsoft.com/en-us/research/group/causal-inference/\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": true,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "165px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
